public class Solution76 {
    public String minWindow(String s, String t) {
        int[] sub = new int[64];
        int count = 0, len = t.length();
        String res = "";
        for (int i = 0; i < len; i++) {
            sub[t.charAt(i) - 'A']--;
        }
        for (int i = 0, j = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            sub[c - 'A']++;
            if (sub[c - 'A'] <= 0) {
                count++;
            }
            if (count == len) {
                while (sub[s.charAt(j) - 'A'] > 0) {
                    sub[s.charAt(j) - 'A']--;
                    j++;
                }
                if (res.length() == 0 || res.length() > i - j + 1) {
                    res = s.substring(j, i + 1);
                }
            }
        }
        return res;
    }
}
